<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style type="text/css">
      #box1 {
        width: 100px;
        height: 100px;
        background-color: red;
        position: absolute;
      }

      #box2 {
        width: 100px;
        height: 100px;
        background-color: yellow;
        position: absolute;
        left: 200px;
        top: 200px;
      }
    </style>
    <script type="text/javascript">
      window.onload = function () {
        /* 
          拖拽box1元素
            - 拖拽的流程
              1.当鼠标在被拖拽元素上按下时,开始拖拽 onmousedown
              2.当鼠标移动时被拖拽元素跟随鼠标移动 onmousemove
              3.当鼠标松开时,被拖拽元素固定在当前位置 onmouseup
        */

        //获取box1
        var box1 = document.getElementById('box1');

        //为box1绑定一个鼠标按下事件
        //1.当鼠标在被拖拽元素上按下时,开始拖拽 onmousedown
        box1.onmousedown = function () {
          //为document绑定一个onmousemove事件
          document.onmousemove = function (event) {
            event = event || window.event;
            //2.当鼠标移动时被拖拽元素跟随鼠标移动 onmousemove
            //获取鼠标的坐标
            var left = event.clientX;
            var top = event.clientY;
            //修改box1的位置
            box1.style.left = left + 'px';
            box1.style.top = top + 'px';
          };

          //为document绑定一个鼠标松开事件
          document.onmouseup = function () {
            //3.当鼠标松开时,被拖拽元素固定在当前位置 onmouseup
            //取消document的onmousemove事件
            document.onmousemove = null;

            //取消document的onmouseup事件
            document.onmouseup = null;
          };
        };
      };
    </script>
  </head>
  <body>
    <div id="box1"></div>

    <div id="box2"></div>
  </body>
</html>
